import request from '@/utils/request'

/**
 * 获取可用的预测模型列表
 * @returns {Promise}
 */
export function getAvailableModels() {
  return request({
    url: '/api/models/service/available_models/',
    method: 'get'
  })
}

/**
 * 单客户流失预测
 * @param {Object} data - 客户信息
 * @returns {Promise}
 */
export function predictSingleCustomer(data) {
  return request({
    url: '/api/models/service/predict_form/',
    method: 'post',
    data
  })
}

/**
 * 批量客户流失预测
 * @param {Array} data - 客户信息数组
 * @returns {Promise}
 */
export function predictBatchCustomers(data) {
  return request({
    url: '/api/models/service/batch_predict_upload/',
    method: 'post',
    data
  })
}

/**
 * 保存预测结果
 * @param {Object} data - 预测结果信息
 * @returns {Promise}
 */
export function savePredictionResult(data) {
  return request({
    url: '/api/models/predictions/',
    method: 'post',
    data
  })
}

/**
 * 创建流失预警
 * @param {Object} data - 预警信息
 * @returns {Promise}
 */
export function createChurnAlert(data) {
  return request({
    url: '/api/models/service/create_alert/',
    method: 'post',
    data
  })
}

/**
 * 查询历史预测结果
 * @param {Object} params - 查询参数
 * @returns {Promise}
 */
export function getPredictionHistory(params) {
  return request({
    url: '/api/prediction/results/',
    method: 'get',
    params
  })
}

/**
 * 预测特定客户的流失风险
 * @param {String} customerId - 客户ID
 * @returns {Promise}
 */
export function predictCustomerById(customerId) {
  return request({
    url: `/api/prediction/predict/${customerId}/`,
    method: 'post'
  })
}